Mobile devices, smart phones, tablet PCs and other portable and web-enabled devices have become widespread, and are used by businesses and consumers in an increasing variety of ways. With the burgeoning use of these devices, there is a corresponding increase in demand for software applications that execute on these devices.
Development of such applications can be time-consuming, complex and expensive. Typically, an application developer requires specialized training to learn advanced programming techniques. Web applications in particular are often composed of multiple programming languages, complicating application development and maintenance still further. This typically results in expensive barriers to entry for small businesses and individuals wishing to set up applications that can perform e-commerce, shopping cart, catalog, and other complex web functionality. Further, once developed, the applications cannot be easily or inexpensively maintained or modified.